package com.liangtian.mdm.material.dao;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.liangtian.mdm.base.BaseDao;
import com.liangtian.mdm.material.model.WlLbmbTzlfh;
import com.liangtian.mdm.material.model.WlLbmbtzl;
import com.liangtian.mdm.material.model.WlLbmbtzlDto;

@Repository
public interface WlLbmbtzlDao extends BaseDao<WlLbmbtzl> {

    public int getWlLbmbtzlListCountByCond(Map<String, Object> map);

    public List<WlLbmbtzlDto> getWlLbmbtzlDtoList(String wlLbmbId);

    public List<WlLbmbTzlfh> getWlLbmbTzlfhByCond(Map map);

    public List<WlLbmbTzlfh> getWlLbmbTzlJldwByCond(Map map);

    public List<WlLbmbtzl> getWlLbmbtzlListByCond(Map<String, Object> wllb);

    public Map<String, Object> getWlLbmbtzlById(WlLbmbtzl tzl);

    public int getTzlFhAddCount(Map<String, Object> map);

    public int insertWlLbmbTzlfh(WlLbmbTzlfh tzlfh);

    public int deleteWlLbmbTzlfh(Map<String, Object> map);

    public int getAddMbTzlCountByTzlmc(Map<String, Object> map);

    public int insertWlLbmbtzl(WlLbmbtzl tzl);

    public WlLbmbtzl getMbTzlById(WlLbmbtzl tzl);

    public int checkEditMbTzlCount(Map<String, Object> map);

    public void updateWlLbmbtzl(WlLbmbtzl tzl);

    public int updateWlLbmbtzlByMap(Map<String, Object> map);

    public int deleteWlLbmbTzlfhByTzlid(Map<String, Object> map);

    /**
     * 根据条件查询特征量的关联特征量
     *
     * @param map
     * @return
     * @author jiangyh
     * @date 2016-12-15
     */
    public List<String> getWlLbmbTzlGl(Map<String, Object> map);

    /**
     * 查找物料类别模板下的有效特征量数据
     *
     * @param wlLbmbId 物料类别模板ID
     * @param lan      语言标识
     * @return
     * @author jiangyh
     * @date 2016-12-15
     */
    public List<WlLbmbtzl> getWlLbmbtzlLanListSimple(Map<String, Object> cond);

    /**
     * 根据模板id查询模板数据
     *
     * @param id 物料类别模板ID
     * @return
     * @author jiangyh
     * @date 2016-12-23
     */
    public WlLbmbtzl getWlLbmbtzlById2(String id);

    /**
     * 根据模板id查找物料类别模板下的有效特征量数据
     *
     * @param wl_lbmb_id
     * @return
     * @author jiangyh
     * @date 2017-03-21
     */
    public List<WlLbmbtzl> getWlLbmbtzlListSimple(String wl_lbmb_id);

    /**
     * 根据模板id和特征量序号查找特征量数据
     *
     * @param wlLbmbtzl
     * @return
     * @author jiangyh
     * @date 2017-04-11
     */
    public WlLbmbtzl getWlLbmbtzlByWlLbmbIdAndTzlxh(WlLbmbtzl wlLbmbtzl);

    /**
     * <p>TODO 添加一个删除 特征量的方法</p>
     * <p>@param tzlId
     * <p>@return </p>
     *
     * @author : xiaoliu
     * @date :2017年12月22日下午4:41:10
     */
    public int deleteWlLbmbTzlByMap(Map map);

    public int getTzlMaxXh(Map<String, Object> map);

    public List<WlLbmbTzlfh> getWlLbmbTzlfhAndJldwByCond(String wlLbmbId);

}
